package com.fowo.api.model.purchase.rgoods.order.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 采购退货单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class PurchaseRgoodsOrderProductImportPo {

  /** 所属采购退货单 */
  @ExcelProperty("所属采购退货单")
  @Size(max = 500, message = "所属采购退货单长度不能超过500")
  private String parentIdRemark;

  @ExcelIgnore
  @Schema(title = "所属采购退货单")
  private String parentId;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 500, message = "产品长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "产品")
  private String productId;

  /** 产品名称 */
  @ExcelProperty("产品名称")
  @Size(max = 50, message = "产品名称长度不能超过50")
  private String productName;

  /** fnskuName */
  @ExcelProperty("fnskuName")
  @Size(max = 50, message = "fnskuName长度不能超过50")
  private String fnskuName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String productSku;

  /** 属性 */
  @ExcelProperty("属性")
  @Size(max = 50, message = "属性长度不能超过50")
  private String productAttribute;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String sidShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String sid;

  /** fnsku */
  @ExcelProperty("fnsku")
  @Size(max = 50, message = "fnsku长度不能超过50")
  private String fnskuFnsku;

  @ExcelIgnore
  @Schema(title = "fnsku")
  private String fnsku;

  /** 可用品退货数量 */
  @ExcelProperty("可用品退货数量")
  @IntegerString(
    message = "可用品退货数量数值格式不正确",
    label = "可用品退货数量",
    min = 0
  )
  private String quantity;

  /** 次品退货量 */
  @ExcelProperty("次品退货量")
  @IntegerString(
    message = "次品退货量数值格式不正确",
    label = "次品退货量",
    min = 0
  )
  private String returnBadNum;

  /** 单价 */
  @ExcelProperty("单价")
  @DecimalString(message = "单价小数格式不正确", label = "单价")
  private String price;

  /** 价格 */
  @ExcelProperty("价格")
  @DecimalString(message = "价格小数格式不正确", label = "价格")
  private String amount;

  /** 退货金额 */
  @ExcelProperty("退货金额")
  @DecimalString(message = "退货金额小数格式不正确", label = "退货金额")
  private String deductionAmount;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 勾稽借用字段 */
  @ExcelProperty("勾稽借用字段")
  @IntegerString(
    message = "勾稽借用字段数值格式不正确",
    label = "勾稽借用字段",
    min = 0
  )
  private String crossChecking;

  /** 采购单子表id */
  @ExcelProperty("采购单子表id")
  @LongString(message = "采购单子表id数值格式不正确", label = "采购单子表id")
  private String purchaseOrderProductId;

  /** 可用仓位 */
  @ExcelProperty("可用仓位")
  @Size(max = 50, message = "可用仓位长度不能超过50")
  private String availableWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "可用仓位")
  private String availableWarehouseBin;

  /** 次品仓位 */
  @ExcelProperty("次品仓位")
  @Size(max = 50, message = "次品仓位长度不能超过50")
  private String rejectWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "次品仓位")
  private String rejectWarehouseBin;
}
